<?php

/**
 * 数据获取基本类
 * @author Ice iceinto@mallog.com.cn
 */
class BaseModel extends Model
{

    /**
     * 根据标示默认获取数据信息
     * @param int $id 标示
     * @param string $fields 字段
     * @return array
     * @author Ice  <iceinto@mallog.com.cn>
     */
    protected function getById($id, $fields = null)
    {
        return $this->field($fields)->find($id);
    }

    /**
     * 根据标示默认获取数据信息
     * @param array $map 查询条件
     * @param string $fields 字段
     * @return array
     * @author Ice <iceinto@mallog.com.cn>
     */
    protected function getByWhere($map, $fields = null)
    {
        return $this->where($map)->field($fields)->find();
    }

    /**
     * 获取数据列表
     * @param array $map 查询条件
     * @param string $limit 分页
     * @param string $order 排序
     * @param string $fields 字段
     * @return array
     * @author Ice <iceinto@mallog.com.cn>
     */
    protected function getListByWhere($map, $fields = null, $limit = null, $order = null)
    {
        return $this->where($map)->limit($limit)->order($order)->field($fields)->select();
    }

    /**
     * 修改数据信息
     * @param array $map 修改条件
     * @param array 修改的数据值
     * @return int
     * @author Ice <iceinto@mallog.com.cn>
     */
    public function update($map, $data)
    {
        return $this->where($map)->save($data);
    }

    /**
     * 返回任务状态说明
     * 任务状态说明:1等待处理、2进行中、3需求退回、4等待审核、5审核退回、6审核通过、7等待发送、8发送完成
     * @param int $status
     * @author ice<iceinto@mallog.com.cn>
     */
    public function getStatus($status)
    {
        $message['1'] = '等待处理';
        $message['2'] = '已经分配';
        $message['3'] = '等待商场审核';
        $message['100'] = '推送成功';
        if ($message[$status]) {
            return $message[$status];
        } else {
            return null;
        }
    }

    /**
     * update status
     * @param int $id
     * @param int $status
     * @author Ice<iceinto@mallog.com.cn>
     */
    public function updateStatus($id, $status)
    {
        $data = array();
        $data['id'] = $id;
        $data['status'] = $status;
        return $this->save($data);
    }

    /**
     * 获取当天时间
     * @author Ice <iceinto@mallog.com.cn>
     */
    public function getThisDayTime()
    {
        $date = new Date();
        $dayTime = $date->format('%Y-%m-%d');
        return strtotime($dayTime);
    }

    /**
     * 获取当前开始时间和结束时间
     * @author Ice <iceinto@mallog.com.cn>
     */
    public function getStartToEndTime()
    {
        $map = array();
        $nowTime = $this->getThisDayTime();
        $map['end_time'] = array('egt', $nowTime);
        return $map;
    }

    public function getCount($where)
    {
        return $this->where($where)->count();
    }

    protected function getPage($count, $pageSize = 15)
    {
        return new Page ($count, $pageSize);
    }

    protected function getManagedUrl($id, $type = '', $isDate = true)
    {
        $defaultImages = UPLOAD_URL . 'default.jpg';
        $FileManagedModel = M('FileManaged' . ucwords($type));
        $map = array();
        if ($id) {
            $map ['id'] = $id;
            $file = $FileManagedModel->where($map)->find();
            if ($file) {
                if ($type && !$isDate) {
                    return UPLOAD_URL . $type . '/' . $file ['uri'];
                } else if ($type && $isDate) {
                    // 解析时间
                    $time = strftime('%Y/%m/%d', $file ['create_time']);
                    // 返回时间地址
                    return UPLOAD_URL . $type . '/' . $time . '/' . $file ['uri'];
                } else {
                    return UPLOAD_URL . $file ['uri'];
                }
            }
            return $defaultImages;
        }
        return $defaultImages;
    }

    protected function _after_insert($data, $options)
    {
    }

    protected function _after_update($data, $options)
    {
    }

    protected function _after_delete($data, $options)
    {
    }
}

?>